﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Registro.Compras.Api.Models;
using Registro.Compras.Data.Business;

using System.Threading.Tasks;
using System.Web.Http.Description;
using Registro.Compras.Data.Entities;
using System.Web.Http.Cors;

namespace Registro.Compras.Api.Controllers
{
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    public class BaseImponibleController : ApiController
    {
        // GET api/BaseImponible/
        public IEnumerable<BaseImponibleModel> Get()
        {
            return BaseImponibleBusiness.GetListByFilter("").Select(t => new BaseImponibleModel
            {
                Id = t.Id,
                Nombre = t.Nombre,
            });
        }

        // GET api/BaseImponible/5
        //[ResponseType(typeof(BaseImponibleModel))]
        public BaseImponibleModel Get(int id)
        {
            BaseImponible t = BaseImponibleBusiness.GetById(id);
            return new BaseImponibleModel
            {
                Id = t.Id,
                Nombre = t.Nombre,
            };
        }
        //[ResponseType(typeof(BaseImponibleModel))]
        public BaseImponibleModel Post(BaseImponibleModel m)
        {
            BaseImponible t = BaseImponibleBusiness.Create(new BaseImponible
            {
                Nombre = m.Nombre,
            });
            return new BaseImponibleModel
            {
                Id = t.Id,
                Nombre = t.Nombre,
            };
        }


        public BaseImponibleModel Put(int id, [FromBody] BaseImponibleModel m)
        {
            BaseImponible t = BaseImponibleBusiness.Update(new BaseImponible
            {
                Id = id,
                Nombre = m.Nombre,
            });

            return new BaseImponibleModel
            {
                Id = t.Id,
                Nombre = t.Nombre,
            };

            //return new HttpResponseMessage(HttpStatusCode.OK);
        }
        public void DeleteXxxx(int id)
        {
            BaseImponibleBusiness.Delete(id);
        }


    }
}